package cn.newtouch.base.base.array;

public class Count3Quit2
{
    public static void main(String[] args)
    {
        KidCircle kc = new KidCircle(500);
        int countNum = 0;
        Kid k = kc.first;
        while (kc.count > 1)
        {
            countNum++;
            if (countNum == 3)
            {
                countNum = 0;
                kc.delete(k);
            }
            k = k.right;
        }

        System.out.println(kc.first.id);
    }
}

class Kid
{
    int id;

    Kid left;

    Kid right;
}

class KidCircle
{
    int count = 0;

    Kid first, last;

    KidCircle(int n)
    {
        for (int i = 0; i < n; i++)
        {
            add();
        }
    }

    void add()
    {
        Kid k = new Kid();
        k.id = count;
        if (count <= 0)
        {
            first = k;
            last = k;
            k.left = k;
            k.right = k;
        }
        else
        {
            last.right = k;
            k.left = last;
            k.right = first;
            first.left = k;
            last = k;
        }
        count++;
    }

    void delete(Kid k)
    {
        if (count <= 0)
        {
            return;
        }
        else
            if (count == 1)
            {
                first = last = null;
            }
            else
            {
                k.left.right = k.right;
                k.right.left = k.left;

                if (k == first)
                {
                    first = k.right;
                }
                else
                    if (k == last)
                    {
                        last = k.left;
                    }
            }
        count--;
    }
}